| Tecnologia RAID RAID significa Redundant Arrays of Independent Disks, ossia Schiere   Ridondanti di Dischi Indipendenti. La storia del RAID inizia nel 1987 quando   tre brillanti ricercatori americani pubblicarono uno studio denominato "A case   for Redundant Arrays of Inexpensive Disks", ecco il perché della sigla RAID, nel   quale definirono 5 modi diversi di gestione di gruppi di hard disks, i   cosiddetti disk array o array), assegnando un numero a ciascuno di essi, da 1 a   5. Nel 1989 poi, gli stessi autori definirono altri due tipi di modalità di   gestione degli array: il RAID 0 e il 6. Le differenze tra l'uno e l'altro tipo   ne determinano l'uso e le performance.
 Le ragioni che spinsero alcuni   ricercatori ad intraprendere studi sul modo di gestire gruppi di hard disks sono   presto dette. 25 anni fa un hard disk da 100 Mb, generalmente usato nei PC   dell'epoca, aveva un costo per Mb molto inferiore rispetto a quelli di grande   capacità ma prestazioni velocistiche non molto inferiori. Per esempio un hard   disk da 7.500 Mb costava circa 100.000 $. Perciò trovare un modo di gestire   gruppi di hard disks di piccola capacità in modo da emulare hard disk di grande   capacità rappresentava un'alternativa economicamente molto interessante all'uso   di singoli dischi di grande capacità ma altissimo costo.
 L'ostacolo   principale a cui i ricercatori dovettero far fronte era l'affidabilità degli   array di dischi. In un array composto ad esempio da 100 dischi da 100 Mb,   considerando che la vita media di un singolo hard disk da 100 Mb si aggirava   sulle 30.000 ore, si sarebbe guastato un hard disk ogni 12 giorni e ciò non era   una bella cosa.
 La soluzione a ciò fu l'introduzione di adeguate tecniche di   protezione dei dati costituite da ridondanza (cioè più copie di essi ) e   controlli di errore di varia natura.
 Per fortuna l'evoluzione tecnologica ha   introdotto hard disks sempre più affidabili e veloci, tanto è vero che oggi i   migliori HD SCSI arrivano a vite medie dell'ordine del milione di ore a tutto   vantaggio dell'affidabilità degli array così formati.
 Ma veniamo alla   descrizione delle tecniche utilizzate per gestire gli array nelle varie   tipologie di RAID.
 
 RAID 0 : Striping. E' stato denominato RAID solo per comodita' di denominazione   poiché non offre alcuna delle garanzie di protezione dei dati tipica dei sistemi   RAID. Infatti i dati sono distribuiti su tutti i dischi dell'array in sequenza   ciclica e non c'è alcun dato di verifica. Il numero dei dischi richiesti per   formare un array in RAID 0 è pari al numero dei dischi disponibili per   l'archiviazione dei dati. Con questo sistema la capacità del disco virtuale che   il sistema di gestione rappresenta al sistema operativo è pari alla capacità   complessiva dei dischi che formano l'array. Questo sistema di gestione pur non   garantendo alcun tipo di protezione dai guasti pur tuttavia ha dei pregi   indiscutibili che sono:
 Un'alta capacità e velocità di trasferimento dati sia in lettura che in   scrittura. I dati scritti sono visti in sequenza dal sistema operativo mentre nella   realtà sono distribuiti in strisce (stripes) consecutive sui dischi dell'array,   senza alcuna ripetizione o metodo di controllo di errore. Gli stripes quindi   sono le strisce di sequenze di dati cicliche che costituiscono il sistema di   partizionamento dei dati attraverso il quale i gruppi di dischi costituenti   l'array vengono gestiti. . Il sistema operativo, però, vede virtualmente un   unico hard disk complessivo senza evidenziare il complesso sistema di gestione   che c'è dietro. Quest'ultima è la caratteristica comune di tutti i sistemi   RAID.
 RAID 1: Mirroring. In questo caso   tutti i dati sono replicati su dischi separati, generalmente 2. In pratica i   dati sono scritti replicandoli tante volte quanti sono i dischi. Ciò comporta   una maggiore velocità in lettura rispetto a quella del singolo disco componente,   simile a quella del disco singolo invece la capacità in scrittura.
 
 Tale   struttura corrisponde ad un backup automatico dei dati ripetuti sui vari dischi.   I dati sono visti dal sistema operativo come un singolo disco virtuale di   capacità pari a quella del singolo disco.
 
 RAID   2: In questo sistema l'array è costituito da un insieme N + m di   dischi dove i dati sono distribuiti su N dischi ed i dati di verifica in codice   Hamming sono scritti su m dischi il cui numero dipende da N. Più dischi dati N   ci saranno e maggiore sarà il numero m di dischi di verifica. Le informazioni di   verifica in codice Hamming corrispondono come funzionamento al sistema di   controllo della parità su 2 bit delle memorie ECC utilizzate su server e   workstation. In questo sistema i dati sono distribuiti byte per byte sui dischi   dell'array, aggiungendo un numero sufficiente di check disk contenenti i bit di   controllo necessari per correggere singoli bit errati nei dati. Ogni 10 dischi   di dati occorrono con questo sistema 4 dischi di checking. Tale sistema non è   stato applicato poiché visto che l'unità minima di trasferimento è di un settore   pari a 512 byte la sua applicazione avrebbe richiesto appositi hard disk che non   esistono in commercio.
 
 RAID 3:   Sistema a trasferimento parallelo con parità. Praticamente simile al RAID 2 con   la sola differenza che i dati di verifica del controllo di parità sono scritti   su un solo disco di checking. Perciò la struttura tipica di un array in RAID 3   sarà costituita da un numero di dischi pari a N+1. Cioè un disco di controllo   ogni N dischi dati. Tale struttura assicura la più alta capacità di   trasferimento di grosse quantità di dati in I/O tra i vari tipi di RAID ed una   capacità di far fronte a piccole richieste di I/O circa doppia rispetto a quella   del singolo disco.
 
 Come nel RAID 2, anche nel 3 abbiamo un accesso   parallelo ai dischi. Quindi la gestione degli array in RAID 3 è destinata ai   supercomputer che gestiscono grossi file, infatti la capacità di trasferimento   di grosse quantità di dati è la più alta dei vari tipi di RAID. Non così è per   le applicazioni transazionali tipo database che richiedono piccole richieste di   I/O infatti in questo caso tale tipo di operazione richiede circa il doppio del   tempo che nel disco singolo. Purtroppo gli hard disks moderni non supportano più   il funzionamento in sincronismo necessario al funzionamento in accesso parallelo   tipico di questo sistema. Perciò chi pensasse di utilizzare questo sistema al   giorno d'oggi andrebbe incontro ad una cocente delusione perchè i tempi morti   necessari all'accesso ai vari dischi senza sincronia annullerebbero tutti i   vantaggi di tale gestione.
 
 RAID   4: Dati distribuiti in stripes sequenziali e dati di verifica di   parità su un solo disco di checking. Il numero di dischi necessario alla   gestione di un array in RAID 4 è pari ad N+1. Un disco di controllo ogni N   dischi di dati. Abbiamo visto finora che il difetto principale dei RAID 2 e 3 è   quello della necessità di accesso parallelo e contemporaneo ai dischi   dell'array. Superare questo handicap per estendere l'uso della gestione   multidisco anche al campo delle applicazioni di tipo transazionale ( database e   server ) con sufficiente convenienza in termini di velocità e facilità è il   passo successivo nella definizione di sistemi RAID. Nel RAID 4 infatti si   utilizza uno striping che anziché trasferire solo un bit o un byte singolo per   disco, trasferisce più byte in modo da completare l'intero record della   transazione. Quindi si perde la velocità caratteristica del distribuire i dati   simultaneamente in parallelo sui dischi ma si guadagna nella possibilità di   effettuare accessi contemporanei accessi in I/O sui dischi. I dati di verifica   sono scritti su un disco a parte che funziona da check disk. Il controllo di   parità è più semplice poiché i dati da verificare sono scritti di seguito su un   solo disco invece di essere sparsi byte per byte su vari dischi come nei RAID 2   e 3. Non sono però tutte rose e fiori. Infatti se da una parte una operazione in   lettura richiede un solo accesso ai dischi, una scrittura richiede ben 4   accessi.
 
 A rovinare ancora di più le prestazioni di una gestione in RAID   4 concorre ancora un aspetto molto importante di questo tipo di gestione   dell'array: se da un lato in lettura si raggiungono velocità notevoli di   trasferimento dati grazie allo sfruttamento dell'accesso simultaneo e parallelo   ai dischi, in scrittura questa caratteristica non può essere sfruttata. Infatti   la separazione del disco di checking dagli altri comporta il dover procedere ad   una singola scrittura alla volta ed aggiornare ad ogni singola scrittura i dati   di controllo. Una limitazione così forte alla velocità ha comportato il mancato   utilizzo pratico di questo tipo di gestione dell'array.
 
 RAID 5: Il limite in scrittura della gestione dei dischi in   RAID 4 è stata superata con la definizione del RAID 5 che modifica il sistema di   archiviazione dei dati di controllo. Infatti nel sistema in RAID 5 i dati di   verifica sono anch'essi distribuiti sui vari dischi di seguito ai dati normali   senza un disco dedicato esclusivamente ad essi anche se di fatto è necessaria   l'equivalente presenza di un disco in più per gestire un array in RAID 5. Anche   per il RAID 5 infatti sono necessari alla gestione di un array N+1 dischi.
 
 Col RAID 5 si raggiungono velocità più che soddisfacenti anche in   ambiente transazionale tipico dei server tanto è vero che il RAID 5 è la   configurazione tipica in questo campo.
 
 RAID   6: Nel 1989 la scarsa affidabilità degli hard disks dell'epoca   spinse i ricercatori a definire un sesto sistema di gestione degli array   chiamato RAID 6. Si tratta di una versione del RAID 5 con un disco di controllo   in più. In pratica i dati subiscono due tipi di controllo diversi ed   indipendenti perciò lo spazio destinato alla doppia verifica fa aumentare il   numero dei dischi necessari alla costituzione dell'array. Tipicamente N + 2. Col   tempo però l'affermarsi sul mercato di hard disks sempre più affidabili ha fatto   venir meno la convenienza dell'utilizzo della gestione in RAID 6 a vantaggio di   quella in RAID 5.
 
 Dalla definizione letteraria dei sistemi di gestione   degli array passiamo adesso alla realtà di oggi di questo tipo di   tecnologia.
 
 Il passare del tempo accompagnato dall'evoluzione tecnologica   ha provocato la selezione naturale dei sistemi di gestione degli array   attraverso la creazione di sistemi combinati ibridi di gestione. Tanto è vero   che oggi piuttosto che tendere a gestire array di numerosi dischi si tende alla   gestione di array di array di dischi. Si assiste infatti alla coesistenza di due   essenziali classi che mescolano tra loro una gestione RAID interna ai singoli   array e una gestione RAID di array di array: Striped Array of Mirrored Array e   Mirrored Array of Striped Array. Nel primo caso chiamato per brevità stripe of   mirror si tratta di array gestiti in RAID 0,3 o 5 i cui componenti sono a loro   volta array gestiti in RAID 1. Nel secondo viceversa si tratta di array gestiti   in RAID 1 i cui componenti sono array gestiti in RAID 0,3 o 5. Logicamente per   la struttura stessa che presentano i primi garantiscono un livello di sicurezza   più alto rispetto ai guasti.
 
 Come si vede c'è una certa varietà di   sistemi e combinazioni di sistemi a complicare il panorama in esame. I sistemi   di gestione dei dischi con modalità RAID è complesso e variegato con   implicazioni economiche enormi. La gestione degli immensi database necessari   alle applicazioni in campo meteorologico, grafico, scientifico non avrebbe avuto   gli attuali sviluppi senza la creazione di questa tecnologia però. Neanche i   super computer da milioni di megaflops al secondo potrebbero gestire la loro   fame di dati senza le capacità di trasferimento garantite dalla gestione RAID   dei dischi. Questa in definitiva costituisce un baluardo indispensabile per la   moderna scienza dell'informazione.
   back   |